feat: add configurable scoring fee/decay parameters#85
Conversation
0c4e847 to
44f9447
Compare
44f9447 to
35f70c2
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 44f944731c
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
35f70c2 to
d8d5363
Compare
|
Also |
ed6ea2e to
5b9fe28
Compare
piotr-iohk
left a comment
There was a problem hiding this comment.
utACK
I checked the latest head locally.
Verified:
cargo fmt --checkpasses now (only stable rustfmt warnings from unstable config keys).cargo test set_scoring_params_updates_builder_configpasses.- Previous Package.swift same-tag/checksum concern is addressed by bumping to
v0.7.0-rc.52. - The old Codex comments look outdated against the current diff.
Two things I’m not 100% sure about before/around merge:
bindings/python/pyproject.tomlstill shows0.7.0-rc.50while the other version files are0.7.0-rc.52. Maybe intentional if Python is not being released here.Package.swiftnow points tov0.7.0-rc.52, but I don’t see that GitHub release yet. Before consumers use this tag, we should publishv0.7.0-rc.52and verify theLDKNodeFFI.xcframework.zipchecksum matchesPackage.swift.
GitHub release is here: https://github.com/synonymdev/ldk-node/releases/tag/v0.7.0-rc.52 Android is being published here: https://github.com/synonymdev/ldk-node/actions/runs/28376886105/job/84068781840 |
Summary
This PR adds configurable pathfinding scorer parameters so apps can tune routing behavior instead of always using LDK defaults.
It introduces two new config surfaces:
ScoringFeeParameters(maps toProbabilisticScoringFeeParameters)ScoringDecayParameters(maps toProbabilisticScoringDecayParameters)These can now be set through:
Config(scoring_fee_params,scoring_decay_params)BuilderAPIs:set_scoring_fee_params(...)set_scoring_decay_params(...)At build time, ldk-node now uses configured scorer params when constructing/deserializing the
ProbabilisticScorerand router fee params, falling back to LDK defaults when unset.Why this is needed
Probe and payment outcomes are sensitive to scorer behavior (penalty model + decay dynamics). With hardcoded defaults, consumers cannot adapt routing to their environment (e.g., aggressive probing diversity vs conservative reliability). This change makes scorer behavior explicit